<?php

/** 
 * @author felipe
 * 
 * 
 */
class App_Model_Db_ItemDistribuicao extends Voitech_Db{
	protected $_name = 'item_distribuicao';
	protected $_primary = array('co_produto','co_distribuicao');
	
	static private $instancia;

	/**
	 * @return App_Model_Db_ItemDistribuicao
	 */
	static public function build() {
		if( !isset( self::$instancia ) ) {
			$classe = __CLASS__;
			self::$instancia = new $classe();
		}
		return self::$instancia;
	}

        public function listarTodos(Voitech_TO $obTO) {
		$obSelect = $this->getAdapter()->select()
                                               ->distinct()
                                               ->from(array('itemDistribuicao'=>'item_distribuicao'))
                                               ->joinInner(array('produto'=>'produto')
                                                                  ,'produto.co_produto = itemDistribuicao.co_produto'
                                                                  ,array('no_produto'))
                                               ->joinInner(array('tipoProduto'=>'tipo_produto')
                                                                  ,'tipoProduto.co_tipo_produto = produto.co_tipo_produto'
                                                                  ,array('co_tipo_produto','no_tipo_produto'))
                                               ->joinInner(array('categoriaproduto'=>'categoria')
                                                                  ,'categoriaproduto.co_categoria = produto.co_categoria'
                                                                  ,array('co_categoria', 'no_categoria' ) );

		if( !empty( $obTO->co_distribuicao ) ) {
			$obSelect->where('itemDistribuicao.co_distribuicao = ?',$obTO->co_distribuicao);
		}
		if( !empty( $obTO->st_ativo ) ) {
			$obSelect->where('itemDistribuicao.st_ativo like ?',$obTO->st_ativo);
		}
                $obSelect->order(array('no_categoria','no_produto'));
		return $this->getAdapter()->fetchAll($obSelect);
	}

        public function buscarPorId($coProduto,$coDistribuicao){
            	$obSelect = $this->getAdapter()->select()
                                               ->distinct()
                                               ->from(array('itemDistribuicao'=>'item_distribuicao'))
                                               ->joinInner(array('produto'=>'produto')
                                                                  ,'produto.co_produto = itemDistribuicao.co_produto'
                                                                  ,array('noProduto'))
                                               ->joinInner(array('tipoProduto'=>'tipo_produto')
                                                                  ,'tipoProduto.co_tipo_produto = produto.co_tipo_produto'
                                                                  ,array('co_tipo_produto','no_tipo_produto'))
                                               ->joinInner(array('categoriaproduto'=>'categoria')
                                                                  ,'categoriaproduto.co_categoria = produto.co_categoria'
                                                                  ,array('co_categoria', 'no_categoria' ) )
                                                ->where('produto.co_produto = ?',$coProduto)
                                                ->where('itemDistribuicao.co_distribuicao = ?',$coDistribuicao);
                return $this->getAdapter()->fetchRow($obSelect);

        }
}